/******************************************************************************* * Copyright (c) 2000, 2006 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.ui.model; import org.eclipse.jface.resource.ImageDescriptor; /** * This adapter interface provides visual presentation and hierarchical structure * for workbench elements, allowing them to be displayed in the UI * without having to know the concrete type of the element. * <p> * There is an associate label provider and content provider for showing * elements with a registered workbench adapter in JFace structured viewers. * </p> * @see WorkbenchLabelProvider * @see BaseWorkbenchContentProvider * @since 1.0 */ public interface IWorkbenchAdapter { /** * Returns the children of this object. When this object * is displayed in a tree, the returned objects will be this * element's children. Returns an empty array if this * object has no children. * * @param o The object to get the children for. * @return Object[] */ public Object[] getChildren(Object o); /** * Returns an image descriptor to be used for displaying an object in the workbench. * Returns <code>null</code> if there is no appropriate image. * * @param object The object to get an image descriptor for. * @return ImageDescriptor */ public ImageDescriptor getImageDescriptor(Object object); /** * Returns the label text for this element. This is typically * used to assign a label to this object when displayed * in the UI. Returns an empty string if there is no appropriate * label text for this object. * * @param o The object to get a label for. * @return String */ public String getLabel(Object o); /** * Returns the logical parent of the given object in its tree. * Returns <code>null</code> if there is no parent, or if this object doesn't * belong to a tree. * * @param o The object to get the parent for. * @return Object */ public Object getParent(Object o); }